〇、文档内容查阅命令概览
cat 由第一行开始显示文档内容
tac 从最后一行开始显示文档内容,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示档案内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
od 以二进位的方式读取档案内容!
一、直接查阅文档内容
直接查阅一个档案的内容可以使用 cat/tac/nl 这几个指令。
1. cat
(由第一行开始显示文档内容)
cat [选项] [文件名]
选项
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字元 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
实例
- 查看文档内容
[vagrant/tmp/abc] ]$cat hosts
127.0.0.1 localhost
127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
- 输出时附带行号,空号不编号
[vagrant/tmp/abc] ]$cat -b hosts
1 127.0.0.1 localhost
2 127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
3 # The following lines are desirable for IPv6 capable hosts
4 ::1 localhost ip6-localhost ip6-loopback
5 ff02::1 ip6-allnodes
6 ff02::2 ip6-allrouters
- 输出时附带行号,空号也编号
[vagrant/tmp/abc] ]$cat -n hosts
1 127.0.0.1 localhost
2 127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
3
4 # The following lines are desirable for IPv6 capable hosts
5 ::1 localhost ip6-localhost ip6-loopback
6 ff02::1 ip6-allnodes
7 ff02::2 ip6-allrouters
- 显示文档中的空白字符,将结尾的断行字元 $ 显示出来,将 [tab] 按键以 ^I 显示出来
[vagrant/tmp/abc] ]$cat -A hosts
127.0.0.1^Ilocalhost$
127.0.1.1^Ivagrant-ubuntu-trusty.vagrantup.com^Ivagrant-ubuntu-trusty$
$
# The following lines are desirable for IPv6 capable hosts$
::1 localhost ip6-localhost ip6-loopback$
ff02::1 ip6-allnodes$
ff02::2 ip6-allrouters$
2. tac
(从最后一行开始显示文档内容,tac 是 cat 的倒着写)
tac [文件名]
实例
- 从最后一行开始显示文档内容
[vagrant/tmp/abc] ]$tac hosts
ff02::2 ip6-allrouters
ff02::1 ip6-allnodes
::1 localhost ip6-localhost ip6-loopback
# The following lines are desirable for IPv6 capable hosts
127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
127.0.0.1 localhost
3. nl
(输出附带行号的文档内容)
nl 可以将输出文件内容自动加上行号!其默认结果与 cat -n
有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补 0 等功能。
nl [选项] [文件名]
选项
-b :指定行号指定的方式,主要有两种:
-b t :如果有空行,空的那一行不列出行号;(默认)
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;(默认)
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位元数。
实例
- 输出文档内容,显示行号,空行不编号。类似于
cat -b
[vagrant/tmp/abc] ]$nl hosts
1 127.0.0.1 localhost
2 127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
3 # The following lines are desirable for IPv6 capable hosts
4 ::1 localhost ip6-localhost ip6-loopback
5 ff02::1 ip6-allnodes
6 ff02::2 ip6-allrouters
- 输出文档内容,显示行号,空行也编号。类似于
cat -n
[vagrant/tmp/abc] ]$nl -b a hosts
1 127.0.0.1 localhost
2 127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
3
4 # The following lines are desirable for IPv6 capable hosts
5 ::1 localhost ip6-localhost ip6-loopback
6 ff02::1 ip6-allnodes
7 ff02::2 ip6-allrouters
- 行号靠最左边显示
[vagrant/tmp/abc] ]$nl -b a -n ln hosts
1 127.0.0.1 localhost
2 127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
3
4 # The following lines are desirable for IPv6 capable hosts
5 ::1 localhost ip6-localhost ip6-loopback
6 ff02::1 ip6-allnodes
7 ff02::2 ip6-allrouters
- 行号靠最右方显示,且前面补 0
[vagrant/tmp/abc] ]$nl -b a -n rz hosts
000001 127.0.0.1 localhost
000002 127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
000003
000004 # The following lines are desirable for IPv6 capable hosts
000005 ::1 localhost ip6-localhost ip6-loopback
000006 ff02::1 ip6-allnodes
000007 ff02::2 ip6-allrouters
- 指定行号栏位的占用的位数为 3
[vagrant/tmp/abc] ]$nl -b a -n rz -w 3 hosts
001 127.0.0.1 localhost
002 127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
003
004 # The following lines are desirable for IPv6 capable hosts
005 ::1 localhost ip6-localhost ip6-loopback
006 ff02::1 ip6-allnodes
007 ff02::2 ip6-allrouters
二、翻页查看文档内容
more 和 less 都有翻页查看文档内容的功能,且都能搜索。
但是 less 的功能要比 more 更强大,而且 less 搜索字符串时会高亮显示要搜索的字符串(more竟然不会高亮)。
1. more
more [文件名]
操作
空格键 (Space) :代表向下翻一页;
Enter :代表向下翻‘一行’;
/字符串 :代表在这个显示的内容当中,向下搜寻‘字符串’这个关键字,按回车开始查找,按 n 查找下一个匹配;
:f :立刻显示出文件名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该档案内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管道无用。
2. less
less [文件名]
参数
-N :显示行号
-m :显示类似more命令的百分比
操作
空格键 (Space) :向下翻动一页;
[pagedown] :向下翻动一页;
[pageup] :向上翻动一页;
/字符串 :向下搜寻‘字符串’的功能;
?字符串 :向上搜寻‘字符串’的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程式;
三、查看文档部分内容
我们可以将输出的数据做一个最简单的选取,那就是取出前面 (head) 与取出后面 (tail) 文字的功能。 不过,要注意的是, head 与 tail 都是以‘行’为单位来进行数据选取的!
1. head
(取出前面几行)
head [-n number] 文件名
参数
-n :后面接数字,代表显示几行的意思。默认显示前10行。
实例
- 显示前 5 行,
head -n 5
与head -5
[vagrant/tmp/abc] ]$head -n 5 hosts
127.0.0.1 localhost
127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
[vagrant/tmp/abc] ]$head -5 hosts
127.0.0.1 localhost
127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
- 显示除去后5行的所有行(文档一共7行,即只显示前2行)
[vagrant/tmp/abc] ]$head -n -5 hosts
127.0.0.1 localhost
127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
[vagrant/tmp/abc] ]$cat -n hosts
1 127.0.0.1 localhost
2 127.0.1.1 vagrant-ubuntu-trusty.vagrantup.com vagrant-ubuntu-trusty
3
4 # The following lines are desirable for IPv6 capable hosts
5 ::1 localhost ip6-localhost ip6-loopback
6 ff02::1 ip6-allnodes
7 ff02::2 ip6-allrouters
2. tail
(取出后面几行)
tail [-n number] 文件名
参数
-n :后面接数字,代表显示几行的意思。默认显示前10行。
-f :表示持续监控文件内容的修改,按 Ctrl+c 可退出监控。
实例
- 显示后 5 行,
tail -n 5
与tail -5
[vagrant/tmp/abc] ]$tail -n 5 hosts
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
[vagrant/tmp/abc] ]$tail -5 hosts
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
- 显示从第5行开始一直到文件结尾的所有行(文档一共7行,即只显示后3行)
[vagrant/tmp/abc] ]$tail -n +5 hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
- 显示后5行,并且持续监控文件更新
[vagrant/tmp/abc] ]$tail -n 5 -f hosts
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
╚
四、读取非文本内容
1. od
上面提到的命令,都是在查阅纯文本文件的内容。如果我们想要查阅非文本文件的内容,例如 /usr/bin/passwd 这个可执行文件,使用上面提到的指令来读取他的内容时, 会输出类似乱码的数据!这时,我们可以使用 od 这个指令。
参数
-t :后面可以接各种‘类型 (TYPE)’的输出,例如:
a :利用默认的字符来输出;
c :使用 ASCII 字符来输出
d[size] :利用十进位(decimal)来输出资料,每个整数占用 size bytes ;
f[size] :利用浮点数值(floating)来输出资料,每个数占用 size bytes ;
o[size] :利用八进位(octal)来输出资料,每个整数占用 size bytes ;
x[size] :利用十六进位(hexadecimal)来输出资料,每个整数占用 size bytes ;
实例
- 将/usr/bin/passwd的内容使用ASCII方式输出
[vagrant/tmp/abc] ]$od -t c /usr/bin/passwd
0000000 177 E L F 002 001 001 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000020 002 \0 > \0 001 \0 \0 \0 337 8 @ \0 \0 \0 \0 \0
0000040 @ \0 \0 \0 \0 \0 \0 \0 270 260 \0 \0 \0 \0 \0 \0
0000060 \0 \0 \0 \0 @ \0 8 \0 \t \0 @ \0 034 \0 033 \0
0000100 006 \0 \0 \0 005 \0 \0 \0 @ \0 \0 \0 \0 \0 \0 \0
... 后面省略 n 行 ...
# 最左边第一栏是以八进制来表示bytes数。
# 以上面范例来说,第二栏0000020代表开头是第 16 个 byes (2x8) 的内容之意。
- 将/etc/issue这个文件的内容以八进位列出储存值与ASCII的对照表
[vagrant/tmp/abc] ]$od -t oCc /etc/issue
0000000 125 142 165 156 164 165 040 061 064 056 060 064 040 114 124 123
U b u n t u 1 4 . 0 4 L T S
0000020 040 134 156 040 134 154 012 012
\ n \ l \n \n
0000030
# 如上所示,可以发现每个字符对应的数值。
# 例如b对应的记录数值为142,转成十进制:1x8^2+4x8+2=98。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。